import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
// vue 工程 按需引入 插件
// auto-import 能帮助自动引入.js .ts等文件
// vue-components 能帮助自动引入.vue文件 并注册
// university plugin ===》 unplugin
// npm install --save-dev unplugin-vue-components
// npm install --save-dev unplugin-auto-import
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
// 需要使用element组件库 和vant组件库
import { ElementPlusResolver, VantResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      imports: ['vue', 'vue-router', 'pinia'],
      dts: './src/auto-imports.d.ts',
      dirs: ['./src/plugins'],
      resolvers: [ElementPlusResolver()]
    }),
    Components({
      dts: './src/components.d.ts',
      // dirs 目录 可以写多个，是用于配置自定义标签的自动导入 
      dirs: ['./src/components'],
      // resolvers 可以写多个，用于配置知名组件库的标签的自动导入
      resolvers: [VantResolver(), ElementPlusResolver()]
    })
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})
